.c3p(@key,@value) {
  -webkit-@{key}: @value;
  -moz-@{key}: @value;
  -ms-@{key}: @value;
  -o-@{key}: @value;
  @{key}: @value;
}
// *,
// *:after,
// *:before{
//   -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
//   -webkit-touch-callout: none;
//   -webkit-user-drag: none;
//   -webkit-user-select: none;
//   -ms-user-select: none;
//   -ms-touch-action: none;
//   -moz-user-select: -moz-none;
// }

.boxsizing(@ie:9) {
  & when(@ie>=9) {
    * {
      .c3p(box-sizing,border-box);
    }
  }
  .bsBox {
    .c3p(box-sizing,content-box);
  }
}

.baseReset() {
  html {
    height: percentage(1);
    //overflow-y: scroll;//注1
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    font-family: 'Avenir', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased; //字体抗锯齿渲染
    -moz-osx-font-smoothing: grayscale;
  }
  :root {
    //overflow-y: auto;
    //overflow-x: hidden;
  } //注1//注2
  body {
    // font-family:@en_FontFamily , @cn_FontFamily;
    // width: 100vw;//注1//注2
    height: 100%;
    max-width: none;
    max-height: none;
    overflow-y: scroll;
    // overflow-x: hidden;//注1//注2
    margin: 0;
  }
  //注1：大神张鑫旭经过一些列项目实践，关于浏览器出现滚动条和消失页面不滚动有了更加终极的解决方案，经过大型项目实践已经验证相当具有可行性
  //注2：经实际项目测试并不完全有使用价值，相反，垂直方向的处理容易引起scrollTop的运行
  a
  ,a:link//未被访问前
  ,a:visited//已被访问过
  ,a:hover//鼠标悬停时
  ,a:active {
    //被用户激活（在鼠标点击与释放之间发生的事件）时
    color: inherit;
    text-decoration: inherit;
    outline: 0;
    // 这句存在【页面可用性】问题，
    // 大神张鑫旭建议要么不处理，
    // 要么使用js判断键盘时间手动添加
    // webkit内核原装:focus {outline: -webkit-focus-ring-color auto 5px;}
    // 可能在input元素上需要处理一步
    // ……囧
    cursor: pointer;
    -webkit-text-decoration-skip: objects;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  div,
  dl,
  dt,
  dd,
  ul,
  ol,
  li,
  span,
  b,
  i,
  strong,
  em {
    //   想不通为什么这么好用的属性大家都不用也就算了，还总在这里出意外
    // position: relative;
    // z-index:4;
    -webkit-tap-highlight-color: transparent;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: 1em;
    font-weight: normal;
    margin: 0;
  }
  dl,
  dt,
  dd,
  ul,
  ol,
  li {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .iconfont {
    font-size: inherit;
  }
  .floatL {
    float: left;
  }
  .floatR {
    float: right;
  }
  .ellipsis,
  .text-overflow {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
.text_reset() {
  .text-upp {
    text-transform: uppercase;
  }
  .text-low {
    text-transform: lowercase;
  }
  .text-cap {
    text-transform: capitalize;
  }
}
.lineclamp(@fz,@lh,@caleH:0) {
  //@fz：定义字体大小，可以带单位;
  //@lh：定义行高，不带单位，为字体的倍数，也通用倍数，如果测量设计稿为非倍数则使用（行距/字体）;
  //@caleH：定义行数，整数;
  font-size: @fz;
  line-height: @lh;
  & when ( (isnumber(@caleH))and(@caleH>0) ) {
    display: -webkit-box;
    word-break: break-all;
    overflow: hidden;
    text-overflow: ellipsis;
    height: @fz * @lh * @caleH;
    -webkit-line-clamp: @caleH;
    -webkit-box-orient: vertical;
    //多行省略，webkit私有属性，调用JS处理具体情况
  }
}

.tableReset() {
  .table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
  }
}
.ejsReset() {
  textarea.template {
    display: none !important;
  }
}

.formReset() {
  button,
  input,
  textarea {
    &:focus {
      outline: 0;
    }
  }
  textarea {
    resize: none;
  }
  input:-webkit-autofill {
    background-color: transparent !important;
    background-image: none !important;
  }
  .btn {
    padding: 0;
    border: none;
    background: none;
  }
  .btn-hidden {
    display: none;
  }
  .btn-block {
    display: block;
    text-align: center;
    vertical-align: middle;
    width: 100%;
  }
}

.def(reset) {
  .boxsizing(@ie:9);
  .baseReset();
  .tableReset();
  .ejsReset();
  .formReset();
}

// 部分模块跳级直升3.0
// 3.0以上版本部分模块设定.def(模块名)方法用于导入时默认调用，
// 节约常规调用时间
